<script>
    // a等于什么值，会使条件成⽴「两种⽅案」 
    // var a = "?";

    // valueOf方法
    // 解法一
    // let a = {
    //     i:0,
    //     valueOf(){
    //         return ++this.i
    //     }
    // }

    // 解法二
    // let a = {
    //     i:0,
    //     toString(){
    //         return ++this.i
    //     }
    // }

    // 解法三
    // let a = [1,2,3];
    // a.toString = a.shift;

    // 解法四
    let i = 0;
    Object.defineProperty(window,"a",{
        get(){
            // console.log("get...");
            return ++i;
        }
    })
    if (a == 1 && a == 2 && a == 3) { console.log('码路教育'); }
</script>

















<!-- <script>
    // 解析：

    // 答案1
    let a = {
        i: 0,
        valueOf: function () {
            return ++this.i
        }
    };

    // 答案2
    let a = {
        i: 0,
        toString: function () {
            return ++this.i
        }
    };

    // 答案3
    let a = [1, 2, 3];
    a.toString = a.shift;
    if (a == 1 && a == 2 && a == 3) {
        console.log("i love you~");
    }

    // 答案4
    let i = 0;
    Object.defineProperty(window, "a", {
        get() {
            return ++i;
        }
    })

    if (a == 1 && a == 2 && a == 3) {
        console.log("OK");
    }
</script> -->